前言
昨天我們寫出的腳本,最後一步是把報告存成本機的 .md 檔案。但如果報告存在你的電腦裡,還是得靠你手動打開、上傳、或轉發給主管——這個環節,依然是一個需要人工介入的「最後一哩路」。今天要把這一哩路也自動化,讓報告產出後,直接送到該去的地方。
一、為什麼「自動推送」是自動化流程真正的終點
回顧 Day 1 拆解「寫報告」的三步驟(收集資料、判斷整理、排版),我們其實漏講了一個隱藏的第四步:送出報告。如果前三步都自動化了,唯獨這一步還要你手動做,你的「自動化」其實只完成了大半,每週依然需要記得「去把檔案傳出去」——而人是會忘記、會請假、會來不及的,這正是自動化原本想解決的問題。
二、常見的推送管道,分別適合什麼情境
延續昨天的程式邏輯,今天示範三種常見的推送方式,你可以依照公司實際使用的工具挑選:
python
import requests
def send_to_slack(content, webhook_url):
payload = {'text': content}
response = requests.post(webhook_url, json=payload)
response.raise_for_status()
2. Email(電子郵件)
適合需要正式紀錄、或收件對象習慣用信箱管理工作的場景(例如稽核單位可能更習慣收到正式郵件,而非即時通訊訊息)。Python 可以透過內建的 smtplib 模組寄送郵件:
python
import smtplib
from email.mime.text import MIMEText
def send_email(content, subject, to_address, smtp_config):
msg = MIMEText(content)
msg['Subject'] = subject
msg['To'] = to_address
with smtplib.SMTP(smtp_config['host'], smtp_config['port']) as server:
server.starttls()
server.login(smtp_config['user'], smtp_config['password'])
server.send_message(msg)
小結
今天我們把自動化流程,從「產出報告」延伸到真正的「送達報告」——這才是完整走完了 Day 1 一開始拆解出來的整個工作循環。記得留意跨平台的格式相容問題,也別讓推送失敗這件事悄悄溜走沒被發現。
明天,我們要退後一步,不再寫程式碼,而是用一張圖,把整個自動化系統的架構,清楚地畫出來。